// import { param2Obj } from '@/utils';

const faker = require('faker');

faker.locale = 'zh_CN';

// 入库数据
function makeInbound() {
  return {
    orderNo: faker.random.uuid(),
    status: `${Math.floor(Math.random() * 6)}`,
    inboundTime: (new Date()).toLocaleDateString(),
    inboundType: `${Math.floor(Math.random() * 6)}`,
    prevOrder: faker.random.uuid(),
    inboundStorehouse: `${Math.floor(Math.random() * 3)}`,
    inboundStorehouseId: `${Math.floor(Math.random() * 3)}`,
    keeper: `${Math.floor(Math.random() * 3)}`,
    createTime: (new Date()).toLocaleDateString(),
    remark: '我是入库备注'
  };
}
const invInboundList = [];
for (let i = 0; i < 20; i++) {
  invInboundList.push(makeInbound());
}
// 出库数据
function makeOutbound() {
  return {
    orderNo: faker.random.uuid(),
    status: `${Math.floor(Math.random() * 6)}`,
    outboundTime: (new Date()).toLocaleDateString(),
    outboundType: `${Math.floor(Math.random() * 6)}`,
    prevOrder: faker.random.uuid(),
    outboundStorehouse: `${Math.floor(Math.random() * 3)}`,
    outboundStorehouseId: `${Math.floor(Math.random() * 3)}`,
    keeper: `${Math.floor(Math.random() * 3)}`,
    createTime: (new Date()).toLocaleDateString(),
    remark: '我是出库备注'
  };
}
const invOutboundList = [];
for (let i = 0; i < 20; i++) {
  invOutboundList.push(makeOutbound());
}
// 盘点数据
function makeCheckout() {
  return {
    orderNo: faker.random.uuid(),
    status: `${Math.floor(Math.random() * 6)}`,
    checkoutTime: (new Date()).toLocaleDateString(),
    checkoutType: `${Math.floor(Math.random() * 3)}`,
    storehouseId: `${Math.floor(Math.random() * 3)}`,
    keeper: `${Math.floor(Math.random() * 3)}`,
    creationTime: (new Date()).toLocaleDateString(),
    nextInboundOrder: faker.random.number(99999999),
    nextOutboundOrder: faker.random.number(99999999),
    executionTime: (new Date()).toLocaleDateString(),
    remark: '我是备注'
  };
}
const invCheckoutList = [];
for (let i = 0; i < 20; i++) {
  invCheckoutList.push(makeCheckout());
}
// 调拨数据
function makeAllot() {
  return {
    orderNo: faker.random.uuid(),
    status: `${Math.floor(Math.random() * 6)}`,
    transferTime: (new Date()).toLocaleDateString(),
    outboundStorehouse: `${Math.floor(Math.random() * 3)}`,
    inboundStorehouse: `${Math.floor(Math.random() * 3)}`,
    nextOutboundOrder: faker.random.number(999999999),
    nextInboundOrder: faker.random.number(999999999),
    keeper: `${Math.floor(Math.random() * 3)}`,
    creationTime: (new Date()).toLocaleDateString(),
    remark: '我是备注'
  };
}
const invAllotList = [];
for (let i = 0; i < 20; i++) {
  invAllotList.push(makeAllot());
}
// 组装拆卸数据
function makeAssembly() {
  return {
    orderNo: faker.random.uuid(),
    status: `${Math.floor(Math.random() * 6)}`,
    keeper: `${Math.floor(Math.random() * 3)}`,
    sourceStorehouse: `${Math.floor(Math.random() * 3)}`,
    targetStorehouse: `${Math.floor(Math.random() * 3)}`,
    nextOutboundOrder: faker.random.number(999999999),
    nextInboundOrder: faker.random.number(999999999),
    creationTime: (new Date()).toLocaleDateString(),
    assemdisassemblyTime: (new Date()).toLocaleDateString(),
    assemdisassemblyType: `${Math.floor(Math.random() * 2)}`,
    remark: '我是备注'
  };
}
const invAssemblyList = [];
for (let i = 0; i < 20; i++) {
  invAssemblyList.push(makeAssembly());
}
// 序列号列表
const serialNoList = [];
for (let i = 0; i < 20; i++) {
  serialNoList.push({ serialNo: `0000${i}` });
}

export default {
  // 序列号
  getSerial: () => serialNoList,
  // 入库
  getInventoryInboundList: () => ({
    pageSize: 20,
    pageNum: 1,
    totalNum: 58,
    records: invInboundList
  }),
  addInvInbound: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeInbound());
    return detail;
  },
  detailInvInbound: (config) => {
    console.log(config);
    const detail = {
      status: 0,
      orderNo: faker.random.uuid(),
      deptLevel1: `${Math.floor(Math.random() * 3)}`,
      deptLevel2: `${Math.floor(Math.random() * 3)}`,
      demander: `${Math.floor(Math.random() * 3)}`,
      keeper: `${Math.floor(Math.random() * 3)}`,
      inboundStorehouseId: `${Math.floor(Math.random() * 3)}`,
      inboundTime: (new Date()).toLocaleDateString(),
      inboundType: `${Math.floor(Math.random() * 6)}`,
      prevOrder: faker.random.number(6),
      remark: '我是备注',
      skuArray: []
    };
    for (let i = 0; i < 3; i++) {
      detail.skuArray.push({
        sku: faker.random.uuid(6), // --SKU唯一识别码
        name: `名称${i}`, // --名称
        brand: `品牌${i}`, // --品牌
        specification: `规格${i}`, // --规格
        Bom: faker.random.number(6), // Bom版本
        unit: `单位${i}`, // --单位
        plannedQuantity: faker.random.number(3000), // --计划数量
        usedQuantity: faker.random.number(3000), // --实际领取数量
        inboundQuantity: faker.random.number(3000), // --入库数量
        storageSite: `仓位${i}`, // --仓位
        batchNo: faker.random.uuid(8), // --批号
        prodDate: (new Date()).toLocaleDateString(), // --生产日期
        serialNo: faker.random.uuid(8), // --序列号
        inspectionNo: faker.random.uuid(8), // --检验单号
        defectiveQuantity: faker.random.number(1222), // --不合格数量
        status: Math.round(Math.random()) // 状态
      });
    }
    return detail;
  },
  queryInboundOrderNo: (config) => {
    console.log(config);
    return [
      { value: '1111', id: 123123 },
      { value: '2222', id: 223223 },
      { value: '3333', id: 333333 },
      { value: '4444', id: 443443 },
      { value: '5555', id: 553553 }
    ];
  },
  submitInvInbound: () => ({
    status: 0,
    obj: Math.round(Math.random())
  }),
  backInvInbound: () => ({
    status: 0,
    obj: Math.round(Math.random())
  }),
  deleteInvInbound: () => ({
    status: 0
  }),
  // 出库
  getInventoryOutboundList: () => ({
    pageSize: 20,
    pageNum: 1,
    totalNum: 58,
    records: invOutboundList
  }),
  addInvOutbound: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeOutbound());
    return detail;
  },
  detailInvOutbound: (config) => {
    console.log(config);
    const detail = {
      status: 0,
      orderNo: faker.random.uuid(8),
      outboundType: `${Math.floor(Math.random() * 6)}`,
      outboundStorehouseId: `${Math.floor(Math.random() * 3)}`,
      keeper: `${Math.floor(Math.random() * 3)}`,
      deptLevel1: `${Math.floor(Math.random() * 3)}`,
      deptLevel2: `${Math.floor(Math.random() * 3)}`,
      demander: `${Math.floor(Math.random() * 3)}`,
      vender: `${Math.floor(Math.random() * 3)}`,
      outboundTime: (new Date()).toLocaleDateString(),
      previousOrder: faker.random.number(990),
      prevOrder: faker.random.uuid(8),
      remark: '我是备注',
      skuArray: []
    };
    for (let i = 0; i < 3; i++) {
      detail.skuArray.push({
        sku: faker.random.uuid(6), // --SKU唯一识别码
        name: `名称${i}`, // --名称
        brand: `品牌${i}`, // --品牌
        specification: `规格${i}`, // --规格
        Bom: `BOM版本${i}`, // --BOM版本
        unit: `单位${i}`, // --单位
        plannedQuantity: faker.random.number(3000), // --计划数量
        usedQuantity: faker.random.number(3000), // --实际领取数量
        outboundQuantity: faker.random.number(3000), // --出库数量
        batchNo: faker.random.uuid(8), // --批号
        prodDate: (new Date()).toLocaleDateString(), // --有效日期
        serialNo: faker.random.uuid(8), // --序列号
        storageSite: `仓位${i}`, // --仓位
        inspectionNo: faker.random.uuid(8), // --检验单号
        defectiveQuantity: faker.random.number(1222), // --不合格数量
        status: Math.round(Math.random())
      });
    }
    return detail;
  },
  submitInvOutbound: () => ({
    status: 0,
    obj: Math.round(Math.random())
  }),
  backInvOutbound: () => ({
    status: 0,
    obj: Math.round(Math.random())
  }),
  deleteInvOutbound: () => ({
    status: 0
  }),
  // 盘点
  getCheckoutList: () => ({
    status: 0,
    comment: '描述信息',
    obj: {
      pageSize: 20,
      pageNum: 1,
      totalNum: 58,
      records: invCheckoutList
    }
  }),
  saveNewInvCheckout: (config) => {
    console.log('saveNewInvCheckout', config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeCheckout());
    return detail;
  },
  submitNewInvCheckout: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeCheckout());
    return detail;
  },
  detailInvCheckout: (config) => {
    console.log(config);
    const detail = {
      checkoutType: `${Math.floor(Math.random() * 3)}`,
      storehouseId: `${Math.floor(Math.random() * 3)}`,
      keeper: `${Math.floor(Math.random() * 3)}`,
      demander: `${Math.floor(Math.random() * 3)}`,
      demand1LevelDept: `${Math.floor(Math.random() * 3)}`,
      demand2LevelDept: `${Math.floor(Math.random() * 3)}`,
      checkoutTime: (new Date()).getTime(),
      nextInboundOrder: `${faker.random.number(9999999)}`, // 下联入库号
      nextOutboundOrder: `${faker.random.number(9999999)}`, // 下联出库号
      remark: '我是备注',
      skuArray: []
    };
    for (let i = 0; i < 3; i++) {
      detail.skuArray.push({
        sku: faker.random.uuid(6), // --SKU唯一识别码
        name: `名称${i}`, // --名称
        brand: `品牌${i}`, // --品牌
        specification: `规格${i}`, // --规格
        unit: `单位${i}`, // --单位
        batchNo: faker.random.uuid(8), // --批号
        productionDate: (new Date()).toLocaleDateString(), // --生产日期
        validityDate: (new Date()).toLocaleDateString(), // --有效日期
        serialNo: faker.random.uuid(8), // --序列号
        storageSite: `仓位${i}`, // --仓位
        inspectionNo: faker.random.uuid(8), // --检验单号
        defectiveQuantity: faker.random.number(1222), // --不合格数量
        accountQuantity: faker.random.number(99000), // --账目数量
        actualQuantity: faker.random.number(99000), // --实际数量
        differenceQuantity: faker.random.number(99000), // --差异数量
        profitLossType: faker.random.number(99000), // --盈亏类型
      });
    }
    return {
      status: 0,
      obj: detail
    };
  },
  submitInvCheckout: () => ({
    status: 0,
    obj: Math.floor(Math.random() * 2)
  }),
  backInvCheckout: () => ({
    status: 0,
    obj: Math.floor(Math.random() * 2)
  }),
  deleteInvCheckout: () => ({
    status: 0
  }),
  // 调拨
  getAllotList: () => ({
    status: 0,
    comment: '描述信息',
    obj: {
      pageSize: 20,
      pageNum: 1,
      totalNum: 58,
      records: invAllotList
    }
  }),
  saveNewInvAllot: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeAllot());
    return detail;
  },
  submitNewInvAllot: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeAllot());
    return detail;
  },
  detailInvAllot: (config) => {
    console.log(config);
    const detail = {
      status: 0,
      keeper: `${Math.floor(Math.random() * 3)}`,
      demander: `${Math.floor(Math.random() * 3)}`,
      demand1LevelDept: `${Math.floor(Math.random() * 3)}`,
      demand2LevelDept: `${Math.floor(Math.random() * 3)}`,
      transferTime: (new Date()).getTime(),
      outboundStorehouse: `${Math.floor(Math.random() * 3)}`,
      inboundStorehouse: `${Math.floor(Math.random() * 3)}`,
      nextInboundOrder: `${faker.random.number(9999999)}`, // 下联入库号
      nextOutboundOrder: `${faker.random.number(9999999)}`, // 下联出库号
      remark: '我是备注',
      skuArray: []
    };
    for (let i = 0; i < 3; i++) {
      detail.skuArray.push({
        sku: faker.random.uuid(6), // --SKU唯一识别码
        name: `名称${i}`, // --名称
        brand: `品牌${i}`, // --品牌
        specification: `规格${i}`, // --规格
        unit: `单位${i}`, // --单位
        quantity: faker.random.number(99000), // --数量
        batchNo: faker.random.uuid(8), // --批号
        productionDate: (new Date()).toLocaleDateString(), // --生产日期
        validityDate: (new Date()).toLocaleDateString(), // --有效日期
        serialNo: faker.random.uuid(8), // --序列号
        outboundStorehouse: `调出仓库${i}`, // --调出仓库
        outboundStorageSite: `调出仓位${i}`, // --调出仓位
        inboundStorehouse: `调入仓库${i}`, // --调入仓库
        inboundStorageSite: `调入仓位${i}`, // --调入仓位
      });
    }
    return {
      status: 0,
      obj: detail
    };
  },
  submitInvAllot: () => ({
    status: 0,
    obj: Math.floor(Math.random() * 2)
  }),
  backInvAllot: () => ({
    status: 0,
    obj: Math.floor(Math.random() * 2)
  }),
  deleteInvAllot: () => ({
    status: 0
  }),
  // 组装拆卸
  getAssemblyList: () => ({
    status: 0,
    comment: '描述信息',
    obj: {
      pageSize: 20,
      pageNum: 1,
      totalNum: 58,
      records: invAssemblyList
    }
  }),
  saveNewInvAssembly: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeAssembly());
    return detail;
  },
  submitNewInvAssembly: (config) => {
    console.log(config);
    const detail = { status: 0 };
    detail.obj = Object.assign({}, makeAssembly());
    return detail;
  },
  detailInvAssembly: (config) => {
    console.log(config);
    const detail = {
      status: 0,
      keeper: `${Math.floor(Math.random() * 3)}`,
      demander: `${Math.floor(Math.random() * 3)}`,
      demand1LevelDept: `${Math.floor(Math.random() * 3)}`,
      demand2LevelDept: `${Math.floor(Math.random() * 3)}`,
      assemdisassemblyTime: (new Date()).getTime(),
      assemdisassemblyType: `${Math.floor(Math.random() * 2)}`,
      sourceStorehouse: `${Math.floor(Math.random() * 3)}`, // --源头仓库
      targetStorehouse: `${Math.floor(Math.random() * 3)}`, // --目的仓库
      nextInboundOrder: `${faker.random.number(9999999)}`, // 下联入库号
      nextOutboundOrder: `${faker.random.number(9999999)}`, // 下联出库号
      remark: '我是备注',
      sourceSKUArray: [], // --源头物料数组
      targetSKUArray: [] // --目的物料数组
    };
    for (let i = 0; i < 3; i++) {
      detail.sourceSKUArray.push({
        sku: faker.random.uuid(6), // --SKU唯一识别码
        name: `名称${i}`, // --名称
        brand: `品牌${i}`, // --品牌
        specification: `规格${i}`, // --规格
        unit: `单位${i}`, // --单位
        quantity: faker.random.number(99000), // --数量
        batchNo: faker.random.uuid(8), // --批号
        productionDate: (new Date()).toLocaleDateString(), // --生产日期
        validityDate: (new Date()).toLocaleDateString(), // --有效日期
        serialNo: faker.random.uuid(8), // --序列号
        sourceStorehouse: `源头仓库${i}`, // --源头仓库
        storageSite: `源头仓位${i}`, // --源头仓位
      });
      detail.targetSKUArray.push({
        sku: faker.random.uuid(6), // --SKU唯一识别码
        name: `名称${i}`, // --名称
        brand: `品牌${i}`, // --品牌
        specification: `规格${i}`, // --规格
        unit: `单位${i}`, // --单位
        quantity: faker.random.number(99000), // --数量
        batchNo: faker.random.uuid(8), // --批号
        productionDate: (new Date()).toLocaleDateString(), // --生产日期
        validityDate: (new Date()).toLocaleDateString(), // --有效日期
        serialNo: faker.random.uuid(8), // --序列号
        targetStorehouse: `目的仓库${i}`, // --目的仓库
        storageSite: `目的仓位${i}`, // --目的仓位
      });
    }
    return {
      status: 0,
      obj: detail
    };
  },
  submitInvAssembly: () => ({
    status: 0,
    obj: Math.floor(Math.random() * 2)
  }),
  backInvAssembly: () => ({
    status: 0,
    obj: Math.floor(Math.random() * 2)
  }),
  deleteInvAssembly: () => ({
    status: 0
  }),
};
